window.addEventListener('load', function () {
    // alert(1);
    // 1. 获取元素 
    var focus = document.querySelector('.focus');
    var ul = focus.children[0];
    //获得focus的宽度
    var w = focus.offsetWidth
    var ol = focus.children[1]
    //2.利用定时器自动轮播图片
    var index = 0
    var timer = setInterval(function () {
        index++;
        var translatex = -index * w;
        ul.style.transition = 'all .3s';
        ul.style.transform = 'translateX(' + translatex + 'px)';
    }, 2000)
    //过渡完成后 在去判断 监听过渡完成的事件   transitioned
    ul.addEventListener('transitionend', function () {
        //无缝滚动
        if (index >= 3) {
            ul.style.transition = 'none'    //去掉过渡效果 让ul快速跳到目标位置
            index = 0
            var translatex = -index * w;    //利用最新的索引号去乘宽度  去滚动图片
            ul.style.transform = 'translateX(' + translatex + 'px)';
        } else if (index < 0) {
            ul.style.transition = 'none'
            index = 2
            var translatex = -index * w;
            ul.style.transform = 'translateX(' + translatex + 'px)';
        }

        //3.小圆点跟随变化
        ol.querySelector('.current').classList.remove('current')   //把ol里面Li带有current类名的选出来去掉类名  remove
        ol.children[index].classList.add('current')    //让当前索引号的li加上 current  add
    })

    //4.手指滑动轮播图
    //触摸元素 touchstart
    var startX = 0
    var moveX = 0
    ul.addEventListener('touchstart', function (e) {
        startX = e.targetTouches[0].pageX;
        clearInterval(timer)
    })
    //移动手指 touchmove:计算手指的滑动距离 并且移动盒子
    ul.addEventListener('touchmove', function (e) {
        //计算移动距离
        moveX = e.targetTouches[0].pageX - startX
        //移动盒子
        var translatex = -index * w + moveX
        //手指拖动时不需要过渡效果
        ul.style.transition = 'none'
        ul.style.transform = 'translateX(' + translatex + 'px)'
        e.preventDefault()
    })
    //手指离开时 根据移动距离去判断是回弹还是播放上一张还是下一张
    ul.addEventListener('touchend', function () {
        if (Math.abs(moveX) > 50) {
            //如果是右滑  就播放上一张  moveX是正值
            if (moveX > 0) {
                index--;
            } else {       //如果是左滑 就播放下一张  moveX是负值
                index++;
            }
            var translatex = -index * w
            ul.style.transition = 'all .3s'
            ul.style.transform = 'translateX(' + translatex + 'px)'
        } else if (Math.abs(moveX) < 50) {     //如果移动距离小于50就回弹
            var translatex = -index * w
            ul.style.transition = 'all .3s'
            ul.style.transform = 'translateX(' + translatex + 'px)'
        }

        //手指离开重启定时器
        clearInterval(timer)
        timer = setInterval(function () {
            index++;
            var translatex = -index * w;
            ul.style.transition = 'all .3s';
            ul.style.transform = 'translateX(' + translatex + 'px)';
        }, 2000)
    })

})